package _2022.day._004_1252_奇数值单元格的数目;

/**
 * @author： YHSimon
 * @date： 2022-07-12 08:21
 */
public class Solution {

    // 直接模拟
    public int oddCells(int m, int n, int[][] indices) {
        int ans = 0;
        int[][] arr = new int[m][n];
        for (int i = 0; i < indices.length; i++) {
            int r = indices[i][0];
            int c = indices[i][1];
            for(int j=0;j<arr.length;j++){
                arr[j][c]+=1;
            }
            for(int j=0;j<arr[0].length;j++){
                arr[r][j]+=1;
            }
        }

        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if((arr[i][j]&1)==1){
                    ans++;
                }
            }
        }
        return ans;
    }

    // 模拟空间优化
    public int oddCells2(int m, int n, int[][] indices) {
        int ans=0;
        int[] rows=new int[m];
        int[] cols=new int[n];
        for (int i = 0; i < indices.length; i++) {
            rows[indices[i][0]]++;
            cols[indices[i][1]]++;
        }

        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(((rows[i]+cols[j])&1)!=0){
                    ans++;
                }
            }
        }
        return ans;
    }


    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println(s.oddCells2(2,2, new int[][]{
                {1,1},{0,0}
        }));
    }
}
